Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3  
Reply to this topicStart new topic
> BBCode => HTML, Funkcja, PHP 4 i 5
Forgoot
post
Post #41





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.03.2004
Skąd: Suwałki

Ostrzeżenie: (0%)
-----


Jedyny tekst, który zapożyczyłem to kod JavaScript - a właściwie jego wycinek... Jeśli źle zrobiłem (a najprawdopodobniej tak jest) to przyznaję się bez bicia. Zerżnąłem ten kod bez niczyjej wiedzy i upubliczniłem na forum bez zgody i bardzo za to przepraszam. Jednak niesądze, że ten kod nie jest nigdzie indziej dostępny...
Jeśli jest taka potrzeba to mój wcześniejszy temat proszę usunać lub sam to zrobię osobiście ( również z tematu: http://forum.php.pl/index.php?showtopic=44296 ) ...

P.S. to chyba nie jest temat na wyrażanie opinii na temat plagiatu.


--------------------
"Nie bój się krytyki, ale pochwały lękaj się bardzo"
Zapraszam: www.Przerosl.com.pl !
Go to the top of the page
+Quote Post
nospor
post
Post #42





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
hmm, wygląda mi to na plagiat:
Czy to nie są zbyt mocne slowa? 3 linijki kodu, ktore kazdy pczątkujący moze napisac, a ty mowisz ze plagiat. Na dodatek nawet jak na 3 linijki kodu, to mozna by to jeszcze zoptymalizować:
Kod
function innafunkcja( innyparametr ) {
obj = document.getElementById(innyparametr);
obj.style.display = obj.style.display == 'none' ? 'block' : 'none';
}
Jedno pobieranie obiektu mniej winksmiley.jpg

@Forgoot korzystaj z tego "mojego" kodu do woli. Wyrażam zgodę smile.gif

ps: i nie robmy juz tu OT


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mamber
post
Post #43





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 25.10.2004

Ostrzeżenie: (0%)
-----


Chodzi mi o skrypt php, który podał @Forgoot
Hmmmm. Wydaje mi się, że zamiast:
  1. <?php
  2. $id = uniqid();
  3. ?>

można by zastosować:
  1. <?php
  2. $id = uniqid(rand());
  3. ?>


lub coś innego, bo przy pierwszej opcji nie generuje unikalnego id dla następnego linku i JS sie "wali".

@nospor ten kod JS który podałeś przypuszczam że jest lepszym rozwiązaniem, ale czy używając Twego kodu należy zmodyfikować kod php i CSS, który podał @Forgoot?

Ten post edytował Mamber 30.03.2006, 10:06:38
Go to the top of the page
+Quote Post
nospor
post
Post #44





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Mamber
nie. ja tylko zmodyfikowalem wnetrze funkcji. Dla jaj nazwalem ją też "innafunkcja", ale nazwij ją tak jak bylo i nie trzeba nic innego modyfikowac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mamber
post
Post #45





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 25.10.2004

Ostrzeżenie: (0%)
-----


A jak ta opcje (ukrywania tekstu) dodac do bbCode skryptu PsNews 1.1 ?
Go to the top of the page
+Quote Post
angel2953
post
Post #46





Grupa: Zarejestrowani
Postów: 199
Pomógł: 5
Dołączył: 8.07.2004
Skąd: gdynia

Ostrzeżenie: (0%)
-----


Kod
<><><><><><><><><><><><><><><><><><><><><><><><>u]


testowy string jak jak w przykładzie podany a to co wyżej to jego wynik... coś jest skopane


--------------------
Sygnaturkę ukradli
Go to the top of the page
+Quote Post
juzwa
post
Post #47





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 10.07.2006

Ostrzeżenie: (0%)
-----


jako, że jestem początkujący w wyrażeniach regularznych a php co najwyżej średnio kumaty pozwoliłem sobie zmienić trochę funkcję Autora

postanowiłem ją trohę zmodyfikować tak aby można było podawać klasy stylów CSS

żeby np była taka możliwość
]url style=styl[odnośnik do strony]/url[
]url=link style=styl[nazwa odnosnika]/url[

i takie coś mozna dodawać przy adresach, listach <ul><ol>, img itd itd

naiwasy powinny być odwrócone, ale to tylko tak aby tego nie zmieniło na html

i zrobiłem takie coś

  1. <?php
  2. for ($i=0;$i<9;$i++) //akurat znaczników mam na razie 9 w bazie więc tyle powtórzeń
  3. {
  4. /*zrobiłem tak, ze znaczniki bbcode są przechowywane w bazie i stamtad ciągnięte 
    więc tutaj całe to podpinanie do bazy i zapytanie*/
  5.  
  6. while(/*rekordy z bazy*/)
  7. {
  8. $marker=$a[bbcode_name];
  9. $text = preg_replace_callback("#[($marker)+[=]?(http|https|ftp+://)?(.[^]]*?)?s*?((style|class)+[=]?(.[^]]*?)?)?](http|https|ftp+://)?(.[^]]*?)?[/$marker]#si",'replace_text',$text );
  10.  
  11. }
  12. }
  13. echo nl2br($text);
  14. function replace_text($phase)
  15. {
  16. $class='';
  17. if(trim($phase[6])!='') 
  18. $class='class="'.$phase[6].'"';
  19. if ($phase[1]=='url' or $phase[1]=='img' or $phase[1]=='mail')
  20. {
  21. //szukanie protokołu
  22. if ($phase[2]!='') 
  23. $url_protocol=$phase[2];
  24. elseif ($phase[7]!='')
  25. $url_protocol=$phase[7];
  26. else
  27. $url_protocol='http://';
  28. if(trim($phase[3])!='')
  29. {
  30. if($phase[1]=='mail')
  31. $url_address=$phase[3];
  32. else
  33. $url_address=$url_protocol.$phase[3];
  34. if (trim($phase[8])!='')
  35. $url_description=$phase[8];
  36. else
  37. $url_description=$phase[3];
  38. }
  39. else
  40. {
  41. if($phase[1]=='mail')
  42. $url_description=$url_address=$phase[8];
  43. else
  44. $url_description=$url_address=$url_protocol.$phase[8];
  45. }
  46. if ($phase[1]=='url')
  47. $text_after_replace='<a href="'.$url_address.'" target="_blank" '.$class.'>'.$url_description.'</a>';
  48. elseif ($phase[1]=='img')
  49. $text_after_replace='<img src="'.$url_address.'" '.$class.'>';
  50. elseif($phase[1]=='mail')
  51. $text_after_replace='<a href="mailto:'.$url_address.'" '.$class.'>'.$url_description.'</a>';
  52. }
  53. else if ($phase[1]=='list')
  54. {
  55. if($phase[3]!='')
  56. {
  57. $list_letter='o';
  58. if($phase[3]==1 or $phase[3]=='A' or $phase[3]=='a' or $phase[3]=='I' or $phase[3]=='i')
  59. $type='type="'.$phase[3].'"';
  60. else
  61. $type='';
  62. }
  63. else
  64. {
  65. $list_letter='u';
  66. $type='';
  67. }
  68. $list_text='<'.$list_letter.'l '.$type.'>';
  69. $position_list_array=explode("n",$phase[8]);
  70. foreach ($position_list_array as $position_list)
  71. {
  72. if(trim($position_list)!='')
  73. $list_text.='<li>'.$position_list;
  74. }
  75. $list_text.='</'.$list_letter.'l>';
  76. $text_after_replace=$list_text;
  77. }
  78. else if ($phase[1]=='color')
  79. $text_after_replace='<span style="color:'.$phase[3].'">'.$phase[8].'</span>';
  80. else if ($phase[1]=='b')
  81. $text_after_replace='<b>'.$phase[8].'</b>';
  82. else if ($phase[1]=='u')
  83. $text_after_replace='<u>'.$phase[8].'</u>';
  84. else if ($phase[1]=='i')
  85. $text_after_replace='<i>'.$phase[8].'</i>';
  86.  return $text_after_replace;
  87. }
  88. ?>


i teraz pojawił się taki problem
1 - po dodaniu tego stylu musiałem w wyrażeniu reguralnym
"#\[($marker)+[=]?(http|https|ftp+://)?(.[^]]*?)?\s*?((style|class)+[=]?(.[^]]*?)?)?\](http|https|ftp+://)?(.[^]]*?)?\[\/$marker]#si"
dac takie ograniczniki
2 - po ich dodaniu gdy sa zagnieżdzenia BBCode jeśli wewnętrzny BBCode nie był zmieniony wykrzaczał się wewnętrzy
3 - obejście tego to powtórzenie wszystkiego tyle razy ile znaków BBCode jest w bazie

Co prawda jest to rozwiązanie - jakieś - ale mam takie pytanie jak skostruować wyrażenie regularne aby z jednej strony była zachoawna możliwośc umieszczania styli a z drugiej aby nie trzeba było robić tej petli for

W wyrażeniach reguralnych raczej jestem słaby i to taka moja pierwsza próba, która bardziej była rowzwinieciem już istniejącego rozwiazania niż własnym pomysłem - próbowałem jakoś robić to inaczej, ale nie wychodziło - jedynie w taki sposób działa

jakby ktoś miał jakiś pomysł to byłbym wdzieczny smile.gif
Go to the top of the page
+Quote Post
BzikOS
post
Post #48





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


Ponieważ wiele ludzi nadal ma problemy z użyciem funkcji skopiowanej prosto z forum, postanowiłem ją nieco przeformatować. Mam nadzieje, że teraz nie będzie problemów.

Poprawiona i nieco rozszerzona wersja znajduje się w pierwszym poście tego wątku.


btw. nie zajmuję się już php

Ten post edytował BzikOS 24.08.2006, 12:29:11
Go to the top of the page
+Quote Post
sujez
post
Post #49





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.07.2006

Ostrzeżenie: (0%)
-----


nie wiem czy komus cos to da ale ja robie tak
  1. <?php
  2. Function bbcode($zrodlo){
  3. $zrodlo=trim($zrodlo);
  4. $zrodlo=htmlspecialchars($zrodlo);
  5. $zrodlo=preg_replace("#(.*?)?(.*?)#si", "<A HREF="12" TARGET="_blank">12</A>", $zrodlo);
  6. $zrodlo=preg_replace("#(.*?)#si", "<A HREF="2" TARGET="_blank">3</A>", $zrodlo);
  7. $zrodlo=preg_replace("#(.*?)#si", "<b>1</b>", $zrodlo);
  8. $zrodlo=preg_replace("#(.*?)#si", "<i>1</i>", $zrodlo);
  9. $zrodlo=preg_replace("#(.*?)#si", "<u>1</u>", $zrodlo);
  10. $zrodlo=preg_replace("#[small](.*?)[/small]#si", "<small>1</small>", $zrodlo);
  11. $zrodlo=preg_replace("#[big](.*?)[/big]#si", "<big>1</big>", $zrodlo);
  12. $zrodlo=preg_replace("#[p](.*?)[/p]#si", "<p>1</p>", $zrodlo);
  13. $zrodlo=preg_replace("#
    (.*?)
    #si"
    , "<center>1</center>", $zrodlo);
  14. $zrodlo=preg_replace("#[code](.*?)[/code]#si", "<code>1</code>", $zrodlo);
  15. $zrodlo=preg_replace("#(.*?)#si", "<span style="color:2">3</span>", $zrodlo);
  16. $zrodlo=preg_replace("#(.*?)#si", "<span style="font-size:2">3</span>", $zrodlo);
  17. $zrodlo=preg_replace("#[img](.*?)[/img]#si", "<img src="1" border="0" alt="Obrazek" />", $zrodlo);
  18. $zrodlo=preg_replace("#[hr=([0-9]{1,2}|100)]#si", "<hr class="linia" width="1%">", $zrodlo);
  19. $zrodlo=nl2br($zrodlo);
  20. return $zrodlo;
  21. }
  22. ?>


pozniej jak chcem zeby zamienialo mi w danym tekscie to robie tak
  1. <?php
  2. bbcode($POST['tresc']);
  3. ?>

i mi dziala prosto napisane i bez grzebania w nie potrzebnych rzeczach
Go to the top of the page
+Quote Post
Spirit86
post
Post #50





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $zrodlo=preg_replace("#(.*?)#si", "<span style="color:2">3</span>", $zrodlo);
  3. $zrodlo=preg_replace("#(.*?)#si", "<span style="font-size:2">3</span>", $zrodlo);
  4. $zrodlo=preg_replace("#[img](.*?)[/img]#si", "<img src="1" border="0" alt="Obrazek" />", $zrodlo);
  5. ?>

to wydaje mi się bez sensu, po co to http?!


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
sujez
post
Post #51





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.07.2006

Ostrzeżenie: (0%)
-----


hmm moze masz racje usune tongue.gif
Go to the top of the page
+Quote Post
fjellah
post
Post #52





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 26.08.2006
Skąd: Simplicity

Ostrzeżenie: (0%)
-----


A czy koś mógłby dodać bbcode do obsługi kodu?


--------------------
Go to the top of the page
+Quote Post
Spirit86
post
Post #53





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $codesArr = array( 'url' => array( 'a', 'href="' ),
  3. 'img' => array( 'img', 'src="' ),
  4. 'color' => array( 'span', 'style="color:' ),
  5. 'font' => array( 'span', 'style="font-family:' ),
  6. 'table' => array( 'table', 'table' ),
  7. 'b' => 'b',
  8. 'u' => 'u',
  9. 'i' => 'i',
  10. 'ul' => 'ul',
  11. 'code'=>'code',
  12. 'li' => 'li' );
  13. ?>


no i tyle biggrin.gif prawda, że proste smile.gif


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post

3 Stron V  < 1 2 3
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:41